﻿// Pseudoprime numbers POJ - 3641.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
https://vjudge.net/problem/POJ-3641#author=GPT_zh

Fermat定理指出，对于任意的素数p和任意大于1的整数a，ap = a (mod p)。也就是说，如果我们将a的p次方除以p，余数是a。一些（但不是很多）非素数的p值，被称为基于a的伪素数，对于某些a具有这个性质。（而一些被称为Carmichael数的值，对于所有的a都是基于a的伪素数。）

给定2 < p ≤ 1000000000和1 < a < p，确定p是否是基于a的伪素数。

输入
输入包含多个测试用例，后面跟着一行包含"0 0"。每个测试用例由一行包含p和a组成。

输出
对于每个测试用例，如果p是基于a的伪素数，则输出"yes"；否则输出"no"。

示例
3 2
10 3
341 2
341 3
1105 2
1105 3
0 0

no
no
yes
no
yes
yes


*/
#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

 